package com.auemall.service;

import com.auemall.utils.EUDataGridResult;
import com.auemall.vo.BaseRespVO;
import com.auemall.vo.DeleteItemReqVO;
import com.auemall.vo.InsertItemSku;
import com.auemall.vo.ItemBrandVO;
import com.auemall.vo.ItemInfoVO;
import com.auemall.vo.ItemReqVO;
import com.auemall.vo.ItemSkuVO;

/**
 * 
 * @ClassName: ItemService 
 * @Description: TODO 商品管理（商品的增删改查【包括品牌和商品规格】）
 * @author WangChao
 * @date 2017年5月10日 下午4:07:45
 */
public interface ItemService {

	EUDataGridResult selectItemList(ItemReqVO req,int page, int rows) throws Exception;
	
	BaseRespVO addItemInfo(ItemInfoVO req);
	
	BaseRespVO updateItemInfo(ItemInfoVO req);
	
	BaseRespVO deleteItemInfos(DeleteItemReqVO req) throws Exception;
	
	EUDataGridResult selectItemBrand(ItemBrandVO req,int page, int rows) throws Exception;
	
	/**
	 * 
	 * @Title: selectItemBrandChecked 
	 * @Description: TODO(查询所有品牌【包括已选中品牌】)
	 * @param req
	 * @return
	 * @throws Exception ItemBrandCheckedRespVO  
	 * @author WangChao
	 */
	ItemBrandCheckedRespVO selectItemBrandChecked(ItemBrandVO req) throws Exception;
	
	BaseRespVO addItemBrand(ItemBrandVO req) throws Exception;
	
	BaseRespVO updateItemBrand(ItemBrandVO req) throws Exception;
	
	BaseRespVO deleteItemBrand(ItemBrandVO req) throws Exception;
	
	/**
	 * 
	 * @Title: insertItemSku 
	 * @Description: TODO(新增商品规格【商品发布时新增】)
	 * @param req
	 * @return BaseRespVO  
	 * @author WangChao
	 */
	InsertItemSku insertItemSku(ItemSkuVO req);
	
	/**
	 * 
	 * @Title: selectItemSku 
	 * @Description: TODO(查询商品规格)
	 * @param req
	 * @return EUDataGridResult  
	 * @author WangChao
	 */
	EUDataGridResult selectItemSku(ItemSkuVO req);

	/**
	 * 
	 * @Title: updateItemSku 
	 * @Description: TODO(修改商品规格)
	 * @param req
	 * @return
	 * @throws Exception BaseRespVO  
	 * @author WangChao
	 */
	BaseRespVO updateItemSku(ItemSkuVO req) throws Exception;
	 
	/**
	 * 
	 * @Title: deleteItemSku 
	 * @Description: TODO(删除商品规格)
	 * @param req
	 * @return
	 * @throws Exception BaseRespVO  
	 * @author WangChao
	 */
	BaseRespVO deleteItemSku(ItemSkuVO req) throws Exception;
}
